function[H,track_hex,track_locat,point1,point2,T]=track(DATA,HEX)
%%存储每条轨迹的对应数据，筛选出数据点超过100的数据
H=cell(500,4); %元胞H存储每条轨迹的对应信息
uni = unique(HEX); %筛选不同的HEX
k=1;
for i = 1:1:length(uni)
    u = uni(i); %u是每一个HEX号
    id = find(strcmp(HEX,u)==1);    %找到数组HEX[]中与u相同的元素的位置,存入数组id[]中
    if length(id)>=100 
        H{k,1}=u; %储存航班号
        H{k,2}=id; %储存在原数据中的位置
        H{k,3}=DATA(id,6); %储存时间信息
        H{k,4}=[DATA(id,1),DATA(id,2)]; %储存位置信息
        H{k,5}=DATA(id,4);%储存速度信息
        k=k+1;
    end
end
H=H(1:k-1,:); % 轨迹数量k-1
%% 找到发生断裂的轨迹track_hex,找到消失和出现的位置
time=unique(DATA(:,6)); %time为不重复的时间序列
track_hex=strings; %track_hex是一个字符串数组，储存异常航班号
track_locat=[];
k=1;
 for i = 1:1:length(H) %遍历每一条轨迹
    for j=1:1:length(H{i,2})-1 %轨迹上的一个点j
        for a=1:1:length(time)-1 %找到当前时间节点a
            if H{i,3}(j,1)==time(a)
               break;
            end
        end
        for a_1=a+1:1:length(time) %找到下一个时间节点a_1
            if H{i,3}(j+1,1)==time(a_1)
                break;
            end
        end
        if a_1-a>36 && a_1-a<720%即断裂时间>1分钟 && <1小时
           if sqrt((H{i,4}(j,1)-H{i,4}(j+1,1))^2+(H{i,4}(j,2)-H{i,4}(j+1,2))^2)>0.2 %两点之间距离>0.6
            track_hex(k,1)=H{i,1}; %track_hex存储断裂hex:0d0efa
            track_locat(k,1)=i; %储存hex的编号:2
            track_locat(k,2)=H{i,4}(j,1);  %储存轨迹断裂点的经度
            track_locat(k,3)=H{i,4}(j,2);  %储存异常断裂点的纬度
            %track_locat(k,3)=H{i,4}(j,2);  %储存异常断裂点的高度
            track_locat(k,4)=H{i,4}(j+1,1);  %储存轨迹恢复点的经度
            track_locat(k,5)=H{i,4}(j+1,2);  %储存轨迹恢复点的纬度
            %track_locat(k,3)=H{i,4}(j,2);  %储存异常断裂点的高度
            k=k+1;
           end
        end
    end
 end
%% 判断是否提取到断裂点
T=0;
if isempty(track_locat) %如果为空
    T=1;
    point1=[];point2=[];
    return
end

 %% 断裂点和恢复点
 point1=[];
 point2=[];
 point1(:,1)=track_locat(:,2);
 point1(:,2)=track_locat(:,3);
 point2(:,1)=track_locat(:,4);
 point2(:,2)=track_locat(:,5);
end





